import axios from "axios";
import Vue from 'vue'
import { Message } from "element-ui";
Vue.prototype.$message = Message;
// import router from "../router";

export function request(config){
    return new Promise((resolve,reject)=>{
    // 创建axios实例
    const instance = axios.create({
        // baseURL:'https://itheimashop.credere.top/api/',
        baseURL:'api/',
        timeout:5000
    })
    // 创建axios的拦截器
    // 请求拦截
    instance.interceptors.request.use(
        config =>{
            config.headers.Authorization = window.sessionStorage.getItem('token')
            return config
        },err =>{
            console.log(err);
        }
    )
    // 响应拦截
    instance.interceptors.response.use(
        res =>{
            if(res.status && res.status == 200){
                if(res.data.code==500 || res.data.code==401 || res.data.code==403){
                   this.message.error(res.data.message);
                    return
                }
                if(res.data.message){
                    this.message.success({message:res.data.message})
                }
            } else if(res.meta.status && res.meta.status == 400){
                this.$message.error(res.meta.msg);
            }
           
            return res.data;
        }
        // ,err =>{
        //     if(err.response.code==504 || err.response.code==404){
        //         Message.error({message:"服务器未响应"})
        //     }else if(err.response.code==401){
        //         Message.error({message:'尚未登录'})
        //         router.replace('/Login')
        //     }else {
        //         if(err.response.data.message){
        //             Message.error({message:err.response.data.message});
        //         }
        //     }
        //     return;
        // }
    )
    //发送真正网络请求
    instance(config).then(
        res =>{
            resolve(res)
        }
    ).catch(
        err =>{
            reject(err)
        }
    )
    })
}